package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
)

func converToBin(n int) string {
	result := ""
	// 此处的for循环省略了初始条件
	for ; n > 0; n /= 2 {
		lsb := n % 2
		result = strconv.Itoa(lsb) + result
	}
	return result
}
func printFile(filename string) {
	file, err := os.Open(filename)
	if err != nil {
		panic(err)
	}
	scanner := bufio.NewScanner(file)
	// 相当于while
	for scanner.Scan() {
		fmt.Println(scanner.Text())
	}
}

// 死循环 可以代替while循环 go中没有while关键字
// go语言中会大量用到死循环 并发编程
func forever() {
	for {
		fmt.Println("abc")
	}
}
func main() {
	fmt.Println(
		converToBin(5),
		converToBin(13),
		// 转二进制算法 这个数一直对2取模得到的余数即为二进制最后一位，以此类推。 以13为例 13 % 2 = 6 余1则最后一位是1 :1;
		// 然后得数6继续对2取模 6%2=3 余0 则 末二位为0 ：01 ;得数3继续对2取模 得1 余1 末三位为1 ：101；最后1对2取模 得0 余1 末四位即为1：1101 即为最终的二进制结果
	)
}
